-
Notifications
You must be signed in to change notification settings - Fork 96
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve compile times #896
Conversation
This removes protobuf-src as a dependency and default feature in favor of committing the generated rust files instead. On my machine this took a clean release build from ~80s to ~60s. To me it feels like the builds are still far slower than they should be but this is a good easy win.
If protobufs are generated without transport (and thus no ::connect method) the previous naming would cause infinite recursion rather than a compile time failure
Apparently git didn't like me removing submodules and changing the contents of the folders at the same time
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
2b1deee
to
127ab26
Compare
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
This PR exceeds the recommended size of 1000 lines. Please make sure you are NOT addressing multiple issues with one PR. Note this PR might be rejected due to its size. |
Build Succeeded 🥳 Build Id: f47cab4a-0ce1-4782-9cc6-0e42e2f77a3a The following development images have been built, and will exist for the next 30 days: To build this version:
|
This PR is basically general cleanup of the dependency tree and a shift from compiling protobufs at build time to just committing the generated files. Overall this change reduced clean release compile times on my machine by ~25% (~80s -> ~60s).
We were using https://docs.rs/kube-derive/0.88.1/kube_derive/ to derive CustomResource for
FleetSpec
, which also pulled in a duplicate version of darling and several of its transitive dependencies. This was completely unneeded and there was already a manual implementation in the same file forGameServerSpec
. Also removed cached's default features which includes a derive macro we weren't using.The biggest change in compile times came from getting rid of
protobuf-src
completely in favor of committed generated files. (I'm adding a CI check to ensure the protobufs stay up to date). Also the protobuf source files were copied into the repo rather than being in submodules (well, exception being protoc-gen-validate). For example, we were including googleapis, a 52MiB clone for...exactly 1 file that hasn't meaningfully changed (AFAICT), ever.